package com.b2j.main;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Iterator;
import java.util.Set;

import com.b2j.base.MainTools;
import com.b2j.base.ProcessData;
import com.b2j.base.Variable;


public class B2J {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
//		BufferedReader br;
//		try {
//			br = new BufferedReader(new FileReader("d:/input.txt"));
//			Lexer lexer = new Lexer(br);
//			
//			Lexema l = lexer.yylex(); 
//			while (l != null) {
//				if (l != null)
//					System.out.println(l.tokenType + " - " + l.lexema);
//				l = lexer.yylex();
//			}
//		} catch (FileNotFoundException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		} catch (IOException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
		
		
		MainTools.tools.loadTokenList("d:/pruebaangulo.prg");
//		MainTools.tools.loadTokenList("d:/input.txt");
		MainTools.tools.buildVariablesList();
		MainTools.tools.buildProcessList();
		
		Set<String> setp = MainTools.tools.process.keySet();
		
		Iterator<String> it = setp.iterator();
		
		while (it.hasNext()) {
			
			String name = it.next();
			com.b2j.base.ProcessData p = MainTools.tools.process.get(name);
			
			if (p != null) {
				System.out.println("--------------------------------------");
				System.out.println( "Process name: " + p.name);
				for (int i = 0; i < p.listVariables.size(); i++) {
					Variable var = p.listVariables.get(i);
					System.out.println(var.type + " - " + var.name + " - " + var.scope + " - " + var.inicializacion + " C: " + var.isConstant);
				}
			}
		}
		
		MainTools.tools.processCode();
		MainTools.tools.normalizeCode();
		
		System.out.println("--------------------------------------");
		ProcessData enemigo = MainTools.tools.process.get("nave");
		System.out.println(enemigo.code);
		
		for (int i = 0; i < enemigo.imports.size(); i++) {
			System.out.println(enemigo.imports.get(i));
		}
		
		MainTools.tools.generateProgram("D:/PruebaJava");

	}

}
